#pragma once

/*
	Template class for singleton pattern.
*/

template <class Type>
class Singleton
{

protected:
	Singleton(){}
	virtual ~Singleton(){}
	
	Singleton(const Singleton&);
	Singleton& operator=(const Singleton&);

public:
	static Type* Istance()
	{
		static Type istance;
		return &istance;
	}

};

//template<typename Type> Type* Singleton<Type>::istance = 0;




